#include<iostream>
using namespace std;
#include<string>
#include<algorithm>

//class Solution {
//public:
//    string addBinary(string a, string b) {
//        int next = 0, n = a.size(), m = b.size();
//        string ans;
//        ans.reserve((n > m ? n : m) + 1);
//        int i, j;
//        for (i = n - 1, j = m - 1; i >= 0 && j >= 0; --i, --j)
//        {
//            int tmp = a[i] - '0' + b[j] - '0' + next;
//            ans += tmp % 2 + '0';
//            next = tmp / 2;
//        }
//        while (i >= 0)
//        {
//            int tmp = a[i] - '0' + next;
//            ans += tmp % 2 + '0';
//            next = tmp / 2;
//            --i;
//        }
//        while (j >= 0)
//        {
//            int tmp = b[j] - '0' + next;
//            ans += tmp % 2 + '0';
//            next = tmp / 2;
//            --j;
//        }
//        while (next)
//        {
//            ans += next % 2 + '0';
//            next /= 2;
//        }
//        reverse(ans.begin(), ans.end());
//        return ans;
//    }
//};
//void test01()
//{
//    string ans = Solution().addBinary("11", "1");
//}

class Solution {
public:
    bool backspaceCompare(string s, string t) {
        string st1;
        string st2;
        for (auto e : s)
        {
            if (e == '#' && !st1.empty())
                st1.pop_back();
            else
                st1.push_back(e);
        }
        for (auto e : t)
        {
            if (e == '#' && !st2.empty())
                st2.pop_back();
            else
                st2.push_back(e);
        }
        return st1 == st2;
    }
};
void test02()
{
    Solution().backspaceCompare("y#fo##f", "y#f#o##f");
}
int main()
{
    test02();
	return 0;
}